# _*_ coding:utf-8 _*_
# 开发团队: Mavericks
# 开发人员：Maverick·Ming
# 开发IDE： PyCharm
#   项目名：HelloWorld
#   文件名：4.15 集合的运算.py
# 开发时间：2021/3/24 9:30

# 在对集合做运算时，只要不重新赋值，不会影响原来的集合，而是返回一个结果（set）
# 创建两个集合set
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
print('set1：', set1, type(set1), '\n', 'set2:', set2, type(set2))

# 差集’-‘
print('set1 - set2 = ', set1 - set2, type(set1 - set2))
# 结果：set1 - set2 =  {1, 2} <class 'set'>
print('set2 - set1 = ', set2 - set1, type(set2 - set1))
# 结果：set2 - set1 =  {6, 7} <class 'set'>

# 交集’&‘
print('set2 & set1 = ', set2 & set1, type(set2 & set1))
# 结果：set2 & set1 =  {3, 4, 5} <class 'set'>

# 并集’|‘
print('set2 | set1 = ', set2 | set1, type(set2 | set1))
# 结果：set2 | set1 =  {1, 2, 3, 4, 5, 6, 7} <class 'set'>

# 亦或集’^‘：获取仅各自独有的元素
print('set2 ^ set1 = ', set2 ^ set1, type(set2 ^ set1))
# 结果：set2 ^ set1 =  {1, 2, 6, 7} <class 'set'>

# s1 <= s2 检查s1是否是s2的子集
# 如果s1中的元素，全部在s2中都有，则s1就是s2的子集
a = {'a', 'b'}
b = {'a', 'b', 'c'}
print('a <= b :', a <= b)
# 结果：a <= b : True

# s1 < s2 检查s1是否是s2的超子集
# 如果s1中的元素，全部在s2中都有，且s2中必有s1中没有的元素，则s1就是s2的超子集
a = {'a', 'b'}
b = {'a', 'b'}
print('a < b :', a < b)
# 结果：a < b : False

